package com.douqu.game.core.factory;

/**
 * Created by bean on 2017/7/14.
 */
public class ConstantFactory {

    public final static int ZERO = 0;


    public final static String TASK_EXECUTOR_NAME = "taskExecutor";

    public final static String LANGUAGE_CHINESE = "Chinese";
    public final static String LANGUAGE_CHINESETRADITIONAL = "ChineseTraditional";
    public final static String LANGUAGE_ENGLISH = "English";
    public final static String RECHARGE_KEY = "douqu_recharge_key";

    public final static String ACTIVITY_CAMP = "camp";

    public final static String MAX_WIN_COUNT_PLAYER = "maxWinCountPlayer";
    public final static String MAX_CONTINUE_WIN_PLAYER = "maxContinueWinPlayer";
    public final static String MAX_EXPLOIT_PLAYER = "maxExploitPlayer";
    public final static String RANK_PLAYER_LIST = "rankPlayerList";
    public final static String RANK_CAMP_LIST = "rankCampList";
    public final static String ACTIVITY_SERVER_HTTP = "activityServerHttp";
    public final static String ACTIVITY_INDEX = "activityIndex";
    public final static String APPLY_PLAYER_LIST = "applyPlayerList";
    public final static String ACTIVITY_STATUS = "activityStatus";
    public final static String FIRST_CAMP_PLAYER_LIST = "firstCampPlayerList";

    /**
     * 分号
     */
    public final static String SEMICOLON = ";";
    /**
     * 竖线
     */
    public final static String DIVISION = "\\|";
    /**
     * 逗号
     */
    public final static String COMMA = ",";
    /**
     * 表格
     */
    public final static String TABLE = "\t";
    /**
     * 换行
     */
    public final static String LINE = "\r\n";
    /**
     * 下划线
     */
    public final static String UNDERLINE = "_";
    /**
     * 冒号
     */
    public final static String COLON = ":";
    /**
     * null
     */
    public final static String NULL = "null";
    /**
     * 忽略
     */
    public final static String IGNORE = "ignore";
    /**
     * PLACEHOLDER 占位符
     */
    public final static String PLACEHOLDER = "PLACEHOLDER";
    /**
     * 角色名称最大长度
     **/
    public final static int NAME_MAX_LENGTH = 7;
    /**
     * 最大等级不能超过玩家等级的两倍
     **/
    public final static int MAX_PLAYER_LV_RATE = 2;

    /**
     * 月卡持续时间
     **/
    public final static long DAY_TIME = 86400000l; // 24 * 3600 * 1000 = 1天

    /**
     * 默认刷新次数时间(时辰)
     */
    public final static int DEFAULT_RESET_FRESH_TIMES_HOUR = 4;

    /**
     * 默认刷新领取奖励时间(时辰)
     */
    public final static int DEFAULT_RESET_RECEIVE_REWARD_HOUR = 21;

    /**
     * 排行榜里面的数据数量
     */
    public final static int RANK_COUNT = 100;

//    /**
//     * 玩家超时时间
//     */
//    public final static int PLAYER_OVERDUE_TIME = 5 * 60 * 1000;
    /**
     * 战斗中检测的间隔时间
     */
    public final static int UPDATE_BATTLE_TIME = 500;


    /***
     * 战斗中检测BUFF的时间
     */
    public final static int UPDATE_BATTLE_BUFF_TIME = UPDATE_BATTLE_TIME * 2;

    /**
     * 观战者队伍
     */
    public final static int BATTLE_TEAM_SPECTATOR = -1;
    /**
     * 队伍1
     */
    public final static int BATTLE_TEAM_1 = 1;
    /**
     * 队伍2
     */
    public final static int BATTLE_TEAM_2 = 2;
    /**
     * 战斗超时时间(秒)
     */
    public final static int BATTLE_OVERDUE_TIME = 200;

    public final static int INIT_PLAYER_INDEX = 100000;
    /**
     * 道具流水号起始
     */
    public final static int INIT_GOODS_INDEX = 10000;

    public final static int INIT_BATTLE_ID = 100;

    /**
     * 阵营类型
     */
    public final static int CAMP_TYPE_ALLIENCE = 1;//联盟
    public final static int CAMP_TYPE_HORDE = 2;//部落
    public final static int CAMP_TYPE_SCOURGE = 3;//天灾
    public final static int CAMP_TYPE_NEUTRAL = 4;//中立

    /**
     * 克制类型(兵的类型)
     */
    public final static int PROFESSION_WARRIOR = 1;//战士
    public final static int PROFESSION_ARCHER = 2;//射手
    public final static int PROFESSION_ENCHANTER = 3;//法师
    public final static int PROFESSION_ALL = 4;//全体

    /**
     * 品质配置
     */
    public final static int QUALITY_WHITE = 1;//白
    public final static int QUALITY_GREEN = 2;//绿
    public final static int QUALITY_BLUE = 3;//蓝
    public final static int QUALITY_PURPLE = 4;//紫
    public final static int QUALITY_ORANGE = 5;//橙
    public final static int QUALITY_RED = 6;//红

    /**
     * 装备位置常量定义
     */
    public final static int EQUIP_TYPE_1 = 1;//武器
    public final static int EQUIP_TYPE_2 = 2;//头盔
    public final static int EQUIP_TYPE_3 = 3;//护甲
    public final static int EQUIP_TYPE_4 = 4;//鞋子


    public final static int ACCESSORY_TYPE_1 = 1;//攻击饰品
    public final static int ACCESSORY_TYPE_2 = 2;//防御饰品


    public final static int PROP_TYPE_PROP_CONSUM = 1; //消耗品
    public final static int PROP_TYPE_TASK = 2; //任务道具
    public final static int PROP_TYPE_CARD_BREACH = 3; //突破令
    public final static int PROP_TYPE_CARD_SYN = 4; //卡牌合成道具(碎片)
    public final static int PROP_TYPE_CARD_EXP = 5; //士兵经验卷轴
    public final static int PROP_TYPE_ACCESSORY_EXP = 6; //饰品经验卷轴
    public final static int PROP_TYPE_EQUIP_SYN_EXP = 7; //装备合成道具
    public final static int PROP_TYPE_BAG = 8; //礼包道具道具
    public final static int PROP_TYPE_LIQUID = 9; //药水道具
    public final static int PROP_TYPE_GRASS = 10; //药草道具
    public final static int PROP_TYPE_TIME_PROP = 11; //时效性道具
    public final static int PROP_TYPE_CAMP_BOX = 12; //阵营宝箱
    public final static int PROP_TYPE_RECOVER = 13; //战场恢复类道具
    public final static int PROP_TYPE_REVIVE = 14; //战场复活类道具
    public final static int PROP_TYPE_MORE_MILITARY = 15;//大量军资道具
    public final static int PROP_TYPE_MILITARY_CAPITAL = 16;//军资类道具


    /**
     * 分解类型
     */
    public final static int RESOLVE_TYPE_FRAGMENT = 1;//碎片
    public final static int RESOLVE_TYPE_CARD = 2;//卡片

    /**
     * 路线
     */
    public final static int ROUTE_TOP = 1;//上路
    public final static int ROUTE_BOTTOM = 2;//下路


    /**
     * 单位类型
     */
    public final static int UNIT_TYPE_LAND = 1;//地面
    public final static int UNIT_TYPE_AIR = 2;//空中
    public final static int UNIT_TYPE_ALL = 3;//所有


    /**
     * 目标范围类型
     */
    public final static int EFFECT_TARGET_GROUP_ENEMY = 1;//敌方
    public final static int EFFECT_TARGET_GROUP_PARTNER = 2;//友方
    public final static int EFFECT_TARGET_GROUP_ALL = 3;//全体
    public final static int EFFECT_TARGET_GROUP_SELF = 4;//自己

    /**
     * 施法对象
     */
    public final static int EFFECT_TARGET_TYPE_SELF = 1;//以自己为起点
    public final static int EFFECT_TARGET_TYPE_LINE = 2;//敌我连线,表示以自己为起点到对方的角度
    public final static int EFFECT_TARGET_TYPE_ENEMY = 3;//敌方,表示以敌方为起点向外扩展
    public final static int EFFECT_TARGET_TYPE_POINT = 4;//坐标点
    public final static int EFFECT_TARGET_TYPE_ALL = 5;//全体
    public final static int EFFECT_TARGET_TYPE_MIN_HP = 6;//血量最少的
    public final static int EFFECT_TARGET_TYPE_MAX_ATK = 7;//攻击最高的
    public final static int EFFECT_TARGET_TYPE_MAX_DEF = 8;//防御最高的

    /**
     * AI策略类型
     */
    public final static int SKILL_AI_TYPE_MIN_HP = 1;//血量最少的
    public final static int SKILL_AI_TYPE_MAX_ATK = 2;//攻击最高的
    public final static int SKILL_AI_TYPE_MAX_DEF = 3;//防御最高的
    public final static int SKILL_AI_TYPE_NEAREST = 4;//距离最近的


    /**
     * 技能类型
     */
    public final static int SKILL_TYPE_MASTER = 1;//英雄技能
    public final static int SKILL_TYPE_BORN = 2;//出生时释放
    public final static int SKILL_TYPE_DIE = 3;//死亡时释放
    public final static int SKILL_TYPE_CD = 4;//CD到时释放
    public final static int SKILL_TYPE_DEFAULT = 5;//普攻技能
    public final static int SKILL_TYPE_BE_ATK = 6;//被攻击时释放
    public final static int SKILL_TYPE_ADEFAULT = 7;//普通攻击时释放
    public final static int SKILL_TYPE_CRI = 8;//暴击时释放
    public final static int SKILL_TYPE_EVA = 9;//闪避时释放
    public final static int SKILL_TYPE_HP_RATE = 10;//血量少于一定比例时释放


    /**
     * 技能作用范围
     */
    public final static int SKILL_RANGE_TYPE_SINGLE = 1;//单体
    public final static int SKILL_RANGE_TYPE_CIRCLE = 2;//圆形
    public final static int SKILL_RANGE_TYPE_SECTOR = 3;//扇形
    public final static int SKILL_RANGE_TYPE_RECTANGLE = 4;//矩形

    /**
     * 技能时间类型
     */
    public final static int SKILL_TIME_TYPE_FLASH = 1;//瞬发
    public final static int SKILL_TIME_TYPE_TIME = 2;//持续


    /**
     * 技能效果延迟类型
     */
    public final static int SKILL_EFFECT_DELAY_SPEED = 1;//技能效果延迟之速度
    public final static int SKILL_EFFECT_DELAY_TIME = 2;//技能效果延迟之时间


    /**
     * 分比基数
     */
    public final static int RATE_BASE_BOUND = 10000;

    /**
     * 经验系统
     **/
    public final static int ALTAR_EXP_ALTAR_SYSTEM = 1;
    /**
     * 金币系统
     **/
    public final static int ALTAR_GOLD_ALTAR_SYSTEM = 2;
    /**
     * 饰品强化系统
     **/
    public final static int ALTAR_ACCESSORY_INTENSIFY_SYSTEM = 3;
    /**
     * 装备系统
     **/
    public final static int ALTAR_EQUIP_ALTAR_SYSTEM = 4;
    /**
     * 饰品精炼系统
     **/
    public final static int ALTAR_ACCESSORY_SCOURING_ALTAR_SYSTEM = 5;
    /**
     * 药水系统
     **/
    public final static int ALTAR_PROPERTY_WATER_ALTAR_SYSTEM = 6;


    /**
     * AI类型
     */
    public final static int AI_TYPE_TIME_SKILL = 1;//定时释放技能

    /**
     * 效果类型
     */
    public final static int SKILL_EFFECT_TYPE_DAMAGE_ATK = 11;//以攻击力为参考值伤害
    public final static int SKILL_EFFECT_TYPE_DAMAGE_DEF = 12;//以防御力为参考值伤害
    public final static int SKILL_EFFECT_TYPE_DAMAGE_MAX_HP = 13;//以生命上限为参考值伤害
    public final static int SKILL_EFFECT_TYPE_DAMAGE_TARGET_MAX_HP_RATE = 14;//以对方生命最大值百分比伤害
    public final static int SKILL_EFFECT_TYPE_ADD_HP_ATK = 21;//以攻击力为参考值加血
    public final static int SKILL_EFFECT_TYPE_ABSORB_HP = 31;//吸血
    public final static int SKILL_EFFECT_TYPE_BUFF = 41;//BUFF
    public final static int SKILL_EFFECT_TYPE_ENTER = 51;//进场特效
    public final static int SKILL_EFFECT_TYPE_SUMMON = 61;//召唤

    public final static int SKILL_LOCK_YES = 1;//锁敌
    public final static int SKILL_LOCK_NO = 2;//非锁敌
    /**
     * 评星标准
     */
    public final static int STAR_TYPE_WIN = 1;//战斗胜利
    public final static int STAR_TYPE_BATTLE_TIME = 2;//通关时间
    public final static int STAR_TYPE_HP_RATE = 3;//主将剩余血量%
    public final static int STAR_TYPE_CAMP_ID = 4;//指定种族
    public final static int STAR_TYPE_KILL_COUNT = 5;//击杀数量
    public final static int STAR_TYPE_CAMP_COUNT = 6;//指定种族士兵数量

    /**
     * BUFF类型
     */
    public final static int BUFF_TYPE_ADD_HP = 1;//持续回血
    public final static int BUFF_TYPE_SUB_HP = 2;//持续伤害
    public final static int BUFF_TYPE_ADD_ATT = 3;//增加属性
    public final static int BUFF_TYPE_SUB_ATT = 4;//减少属性
    public final static int BUFF_TYPE_VERTIGO = 101;//眩晕(不能行走 也不能攻击)
    public final static int BUFF_TYPE_FROZEN = 102;//冰冻(不能行走 可以攻击)
    public final static int BUFF_TYPE_TO_ATTACK = 103;//冲锋
    public final static int BUFF_TYPE_SILENCE = 104;//沉默(只能进行普通攻击)
    public final static int BUFF_TYPE_ADD_DAMAGE_PROFESSION = 105;//对某个职业增加伤害
    public final static int BUFF_TYPE_SUB_DAMAGE_PROFESSION = 106;//对某个职业免除伤害

    public final static int BUFF_RANGE_TYPE_SINGLE = 1;//单体
    public final static int BUFF_RANGE_TYPE_CIRCLE = 2;//圆形

    public final static int BUFF_OVERLAY_TYPE_COVER = 1;//覆盖
    public final static int BUFF_OVERLAY_TYPE_OVERLAP = 2;//叠加

    public final static int BUFF_REFER_RELEASE = 1;//参考释放者
    public final static int BUFF_REFER_MASTER = 2;//参考持有着

    public final static int BUFF_INIT_OVERLAY_DEFAULT = 1;//默认
    public final static int BUFF_INIT_OVERLAY_ENEMY = 2;//根据场上敌方单位数量
    public final static int BUFF_INIT_OVERLAY_PARTNER = 3;//根据场上我方单位数量
    public final static int BUFF_INIT_OVERLAY_ALL = 4;//根据场上双方单位数量
    /**
     * BUFF目标选择
     */
    public final static int BUFF_TARGET_TYPE_SKILL = 1;//跟随技能
    public final static int BUFF_TARGET_TYPE_SELF = 2;//自己

    /**
     * 天赋增加伤害技能类型
     */
    public final static int TALENT_ADD_TYPE_DEFAULT_SKILL = 1;//普攻技能
    public final static int TALENT_ADD_TYPE_OTHER_SKILL   = 2;//其它技能
    public final static int TALENT_ADD_TYPE_MASTER_SKILL  = 3;//主将技能

    /**
     * boss状态
     */
    public final static int BOSS_ACTIVE = 0;//存活
    public final static int BOSS_UN_FRESH = 1;//未刷新
    public final static int BOSS_DEATH = 2;//死亡

    /**
     * BOSS获取玩家平均等级参考
     */
    public final static int BOSS_FOR_PLAYER_AVERAGE_LV = 4;

    /**
     * BOSS结算发放奖励延迟分钟
     */
    public final static int BOSS_BATTLE_LAZY_MINUTE = 5;

    /**
     * 拍卖行分红比例
     */
    public final static float AUCTION_BONUS_RATIO = 0.7f;

    /**------------------------------------------------------------------------------------------*/


    /**--------战场争锋--------------------------------------------------------*/
    /**
     * 取将首级 第一个任务id
     */
    public final static int WORLD_MAP_TASK_KILL_GENERAL_FIRST_ID = 101;
    /**
     * 杀敌报国 第一个任务id
     */
    public final static int WORLD_MAP_TASK_KILL_CARD_FIRST_ID = 201;
    /**
     * 攻城略地 第一个任务id
     */
    public final static int WORLD_MAP_TASK_KILL_CITY_FIRST_ID = 301;

    /**--------------分享-------------------------------------------------*/
    /**
     * 主将升级第一个分享id
     */
    public final static int SHARE_MAJOR_LEVEL_UP_ID = 101;
    /**
     * 橙卡数量第一个分享id
     */
    public final static int SHARE_ORANGE_NUMBER_ID = 201;
    /**
     * 红卡数量第一个分享id
     */
    public final static int SHARE_RED_NUMBER_ID = 301;
    /**
     * 紫卡升星分享第一个id
     */
    public final static int SHARE_PURPLE_UP_STAR_ID = 401;
    /**
     * 橙卡升星分享第一个id
     */
    public final static int SHARE_ORANGE_UP_STAR_ID = 501;
    /**
     * 红卡升星分享第一个id
     */
    public final static int SHARE_RED_UP_STAR_ID = 601;
    /**
     * 通关副本分享第一个id
     */
    public final static int SHARE_PASS_CUSTOMS_ID = 701;
    /**
     * 竞技场排行第一个分享id
     */
    public final static int SHARE_SENIORITY_RANK_ID = 801;




    /** 新手大地图 */
    public final static int CITY_ARMY_GRADE_ROOKIE = 1;
    /** 世界大地图 */
    public final static int CITY_ARMY_GRADE_WORLD = 2;

}

